The present disclosure relates to video coding and, in particular, to techniques for selecting coding modes in predictive coding systems.
Many consumer electronic devices perform video coding and/or decoding. For example, many devices download coded representations of videos from media sources, decode those coded representations and display decoded videos on a local display. As another example, many devices provide videoconferencing services in which video data at one device is captured, coded to achieve bandwidth conservation, and transmitted to another device, where it is decoded and displayed.
Video coding often exploits spatial and/or temporal redundancies in video data to achieve bandwidth compression. Spatial redundancies can be exploited by, for a given portion of a frame of video data, identifying a previously-coded portion of the same frame that is similar in content to the portion being coded. If a similar portion can be identified, the new data may be predicted from the previously-coded data—it is coded differentially with respect to the matching portion. Temporal redundancies can be exploited by identifying a portion of a previously-coded frame that is similar in content to a portion being coded and, if a similar portion can be identified, the new portion is predicted from the previously-coded data—it is coded differentially with respect to the matching portion from the other frame. In either case, the previously-coded matching content serves as a prediction reference for the new portion being coded.
A variety of prediction modes are available for coding video. Video coders often select from a variety of candidate prediction modes a coding mode based on rate-distortion estimation techniques. Coding “cost” of a candidate mode may be modeled asJ(m)=D(m)+λ·R(m),   (1)where D(m) is typically Sum of Squared Error (SSE) between source block and the reconstructed block encoded using the mode “m,” R(m) is the number of bits used to code the block using this mode, and λ is a parameter that controls the tradeoff between rate and distortion. Conventional cost modeling techniques, however, do not generate coded video data that, when decoded, appears natural. Accordingly, there is a need in the art for an improved cost modeling techniques for video coding and decoding systems.